﻿using System;
using System.ComponentModel;
using SenetExperimentsRunner.Utils.TypeDescriptors;

namespace SenetExperimentsRunner.Logic.Experiment
{
    [TypeDescriptionProvider(typeof(ExperimentParamsTypeDescProv))]
    [Serializable]
    class ExperimentParams
    {
        private static int STATIC_ExperimentNumber = 0;
        public static int GetNextExperimentID()
        {
            return ++STATIC_ExperimentNumber;
        }
//        public ExperimentParams()
//        {
//            STATIC_ExperimentNumber++;
//            m_ExperimentId = STATIC_ExperimentNumber;
//        }
        #region /// Private Members ///

        private int     m_ExperimentId;
        private string  m_ExperimentName = string.Empty;
        private int     m_TrialsNumber = 1000;
        private GameParameters m_GameParameters = new GameParameters();
        private SenetPlayerParams m_Player1Params = new SenetPlayerParams();
        private SenetPlayerParams m_Player2Params = new SenetPlayerParams();

        #endregion

        #region /// Public Properties ///

        public int ExperimentId
        {
            get { return m_ExperimentId; }
            set { m_ExperimentId = value; }
        }

        public string ExperimentName
        {
            get { return m_ExperimentName; }
            set { m_ExperimentName = value; }
        }

        public int TrialsNumber
        {
            get { return m_TrialsNumber; }
            set { m_TrialsNumber = value; }
        }

        public GameParameters GameParameters
        {
            get { return m_GameParameters; }
            set { m_GameParameters = value; }
        }

        public SenetPlayerParams Player1Params
        {
            get { return m_Player1Params; }
            set { m_Player1Params = value; }
        }

        public SenetPlayerParams Player2Params
        {
            get { return m_Player2Params; }
            set { m_Player2Params = value; }
        }

        #endregion

    }
}